package io.FileStream;

import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;

public class FileOutputStreamDemo {
    /*
    public FileOutputStream(File file)      创建文件输出流文件以写入由指定的file对象表示的文件
    public FileOutputStream(String name)    创建文件输出流以指定的名称写入文件
    public FileOutputStream(File file,boolean append) 创建文件输出流文件以写入由指定的file对象表示的文件
    public FileOutputStream(String name,boolean append)    创建文件输出流以指定的名称写入文件
     */
    /*

     */
    public static void main(String[] args) throws IOException {
        /*
        字节输出流的细节：
        1.创建字节输出流的对象
                细节1：参数是字符串表示的路径或者是file对象都是可以的
                细节2：如果文件不存在会创建一个新的文件，但要保证父级文件路径是存在的
                细节3：如果文件已经存在，则会清空文件
        2.写数据
                细节1：write方法的参数是整数，但是试讲上写到本地文件中的是在ASCLL上对应的字符
                细节2：若想表示数字，可以多次使用write方法
                        例如：97    write(57);  write(55);
        3.释放资源
                细节1：每次使用完必须释放资源，否则删除时会显示占用资源，无法删除
         */
//        创建对象
        File file=new File("a.txt");//在本文件下创建(untitled)
        FileOutputStream fos=new FileOutputStream(file);
//       创建对象的第二种方法
        FileOutputStream fos2=new FileOutputStream("b.txt");
//        创建文件的第三种方法
        //FileOutputStream fos3=new FileOutputStream("c.txt",true);
//      写出数据
        fos2.write(97);// a
        fos2.write(99);//c


//        在fos2即b.txt中显示未ac;

//        使用write(byte[] b)每次可以写出数组中的数据
        byte[] b="我爱java！".getBytes();
        fos2.write(b);//ac我爱java！

//        写出指定长度字节数组 write(byte[]b,int off,int len),每次写出从off索引开始，len个字节
        byte[] c ="ABCDEFG".getBytes();
        fos2.write(c,2,2);//ac我爱java！CD

//        写出换行 回车符  \r  换行符  \n;
//        windows系统中，每行结尾是\r\n        Unix系统为\n
//        定义字节数组
            byte[] d={97,98,99,100,101};
//            遍历数组
        for (int i = 0; i < d.length; i++) {
//            写出一个字节
            fos2.write(d[i]);
//            写出一个换行，换行符号转成数组写出
            fos2.write("\r\n".getBytes());

        }




//        释放资源
        fos2.close();
    }
}
